module teapo.storage.attached.dom { export class LoadStorage implements attached.LoadStorage { private _byName: { [fullPath: string]: HTMLElement; } = {}; private _parentElement: HTMLElement,
private _document: { createElement(tag: string): HTMLElement; }) { var editedUTCValue = this._parentElement.getAttribute('editedUTC'); this.editedUTC = parseInt(editedUTCValue);
catch (parseEditedUTCError) { console.log('parsing editedUTC ' + parseEditedUTCError); load(recipient: LoadStorageRecipient): void { this._loadFromElement(this._parentElement, recipient);
var updater = new UpdateStorage(this._parentElement, this._byName, this._document);
recipient.completed(updater);
filesByName: { [fullPath: string]: { [propertyName: string]: string; }; }, callback: (error: Error, updater: attached.UpdateStorage) => void): void { this._parentElement.innerHTML = '';
this._parentElement.setAttribute('editedUTC', editedUTC+''); for (var i = 0; i < element.attributes.length; i++) { attrs[i] = element.attributes.item(i);
for (var i = 0; i < attrs.length; i++) { if (attrs[i].name && startsWith(attrs[i].name, 'data-meta-'))
element.removeAttribute(attrs[i].name);
for (var fullPath in filesByName) if (filesByName.hasOwnProperty(fullPath)) { var element = UpdateStorage.createElement(this._parentElement, fullPath, this._document);
this._byName[fullPath] = element;
var updater = new UpdateStorage(this._parentElement, this._byName, this._document);
private _loadFromElement(element: Element, recipient: LoadStorageRecipient) { var fullPath = element.getAttribute('data-path'); for (var i = 0; i < element.childNodes.length; i++) { var child = <Element>element.childNodes.item(i);